A call controller is a device whose function is to react to notifications or alarms from equipment units involved in the call or to requests transmitted by a signaling network.
The call controller is also responsible for reserving the resources needed for a call when a call set-up request is received, for example. Similarly, the call controller is responsible for clearing down its resources on termination of the call.
In conventional telephony the call controller is a centralized device, regardless of the technology used to transmit data relating to the call, the capacity of the telecommunication network concerned, the type of signaling protocol, etc.
Even in an intelligent network (IN) system, in which functions can be distributed over a plurality of physical platforms, calls are nevertheless managed by a single call controller.
Although Internet technologies are by their nature distributed, Internet (VoIP) telephony solutions are not all independent of this centralized call management concept. In the H.323 series of recommendations of the ITU-T (International Telecommunication Union), call management is handled by one of the two terminals (or by one of their representatives) in a predetermined manner.
The centralized solution is not satisfactory because the rapid increase in the number of terminals connected to a network calls for continuous upgrading of the performance of the centralized call controller. The call controller therefore soon becomes extremely costly.
Solutions for decentralizing call management have been proposed. One solution is described in the following article, for example: “ITU-T standardization activities for interactive multimedia communications on packet-based networks: H323 and related recommendations”, James Torga and Jörg Ott, Computer Networks, No. 31.
In the above solution, the call controller is chosen during the call set-up phase. It can be one of the terminals that are parties to the call, for example.
However, the above solution does not really solve the problem since, to the contrary, it requires the terminals to have sufficient resources to be able to manage a call, even if that call evolves from a simple call between two parties to a multi-party conference call.
Work has nevertheless been done on distributed call management.
Solutions considered include the Session Initiation Protocol (SIP) defined in Request For Comments (RFC) No. 2543 of the Internet Engineering Task Force (IETF).
In that solution, the call is not controlled by a single call controller, but by a plurality of “intelligent” terminals (i.e. terminals able to execute the functions of a call controller), each terminal executing some of the functions needed to manage a call.
According to the above solution, all the equipment units participating in the call (terminals, terminal representatives, redirection systems, etc.) contribute to call control. Each system has a particular call control function. The combination of those functions constitutes call control.
The advantages of the above solution are obviously the distribution of the load between the various equipment units involved and the simplicity of developing and maintaining applications, which have to provide a restricted number of functions.
On the other hand, it is clear that the benefit of this distribution has to be offset against the difficulty of obtaining an overview of the call, because control is distributed between the various equipment units, especially when the equipment units involved in call control belong to different operators.